package com.wyzz.hr.pojo.base;

import java.io.Serializable;
import java.util.Date;

import com.wyzz.hr.pojo.Employee;
import com.wyzz.hr.pojo.Infoclass;
import com.wyzz.hr.pojo.Information;

public abstract class BaseInformation implements Serializable {

	public BaseInformation() {
		hashCode = 0x80000000;
		initialize();
	}

	public BaseInformation(String id) {
		hashCode = 0x80000000;
		setId(id);
		initialize();
	}

	public BaseInformation(String id, Employee infoCreateBy,
			Infoclass infoClass, Employee infoLastChangeBy, String infoTitle,
			String infoBreif, String infoContent, Integer infoViewedNum,
			Integer infoStatus, Date infoCreateTime, Date infoLastChangeTime) {
		hashCode = 0x80000000;
		setId(id);
		setInfoCreateBy(infoCreateBy);
		setInfoClass(infoClass);
		setInfoLastChangeBy(infoLastChangeBy);
		setInfoTitle(infoTitle);
		setInfoBreif(infoBreif);
		setInfoContent(infoContent);
		setInfoViewedNum(infoViewedNum);
		setInfoStatus(infoStatus);
		setInfoCreateTime(infoCreateTime);
		setInfoLastChangeTime(infoLastChangeTime);
		initialize();
	}

	protected void initialize() {
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
		hashCode = 0x80000000;
	}

	public String getInfoTag() {
		return infoTag;
	}

	public void setInfoTag(String infoTag) {
		this.infoTag = infoTag;
	}

	public String getInfoTitle() {
		return infoTitle;
	}

	public void setInfoTitle(String infoTitle) {
		this.infoTitle = infoTitle;
	}

	public String getInfoBreif() {
		return infoBreif;
	}

	public void setInfoBreif(String infoBreif) {
		this.infoBreif = infoBreif;
	}

	public String getInfoContent() {
		return infoContent;
	}

	public void setInfoContent(String infoContent) {
		this.infoContent = infoContent;
	}

	public String getInfoFileName() {
		return infoFileName;
	}

	public void setInfoFileName(String infoFileName) {
		this.infoFileName = infoFileName;
	}

	public String getInfoFileDesc() {
		return infoFileDesc;
	}

	public void setInfoFileDesc(String infoFileDesc) {
		this.infoFileDesc = infoFileDesc;
	}

	public String getInfoPicName() {
		return infoPicName;
	}

	public void setInfoPicName(String infoPicName) {
		this.infoPicName = infoPicName;
	}

	public String getInfoPicDesc() {
		return infoPicDesc;
	}

	public void setInfoPicDesc(String infoPicDesc) {
		this.infoPicDesc = infoPicDesc;
	}

	public Integer getInfoViewedNum() {
		return infoViewedNum;
	}

	public void setInfoViewedNum(Integer infoViewedNum) {
		this.infoViewedNum = infoViewedNum;
	}

	public Integer getInfoStatus() {
		return infoStatus;
	}

	public void setInfoStatus(Integer infoStatus) {
		this.infoStatus = infoStatus;
	}

	public Date getInfoCreateTime() {
		return infoCreateTime;
	}

	public void setInfoCreateTime(Date infoCreateTime) {
		this.infoCreateTime = infoCreateTime;
	}

	public Date getInfoLastChangeTime() {
		return infoLastChangeTime;
	}

	public void setInfoLastChangeTime(Date infoLastChangeTime) {
		this.infoLastChangeTime = infoLastChangeTime;
	}

	public Employee getInfoCreateBy() {
		return infoCreateBy;
	}

	public void setInfoCreateBy(Employee infoCreateBy) {
		this.infoCreateBy = infoCreateBy;
	}

	public Infoclass getInfoClass() {
		return infoClass;
	}

	public void setInfoClass(Infoclass infoClass) {
		this.infoClass = infoClass;
	}

	public Employee getInfoLastChangeBy() {
		return infoLastChangeBy;
	}

	public void setInfoLastChangeBy(Employee infoLastChangeBy) {
		this.infoLastChangeBy = infoLastChangeBy;
	}

	public boolean equals(Object obj) {
		if (null == obj)
			return false;
		if (!(obj instanceof Information))
			return false;
		Information information = (Information) obj;
		if (null == getId() || null == information.getId())
			return false;
		else
			return getId().equals(information.getId());
	}

	public int hashCode() {
		if (0x80000000 == hashCode) {
			if (null == getId())
				return super.hashCode();
			String hashStr = (new StringBuilder()).append(getClass().getName())
					.append(":").append(getId().hashCode()).toString();
			hashCode = hashStr.hashCode();
		}
		return hashCode;
	}

	public String toString() {
		return super.toString();
	}

	public static String REF = "Information";
	public static String PROP_INFO_PIC_DESC = "infoPicDesc";
	public static String PROP_INFO_TAG = "infoTag";
	public static String PROP_INFO_CONTENT = "infoContent";
	public static String PROP_INFO_CREATE_BY = "infoCreateBy";
	public static String PROP_INFO_PIC_NAME = "infoPicName";
	public static String PROP_INFO_FILE_DESC = "infoFileDesc";
	public static String PROP_INFO_VIEWED_NUM = "infoViewedNum";
	public static String PROP_INFO_LAST_CHANGE_BY = "infoLastChangeBy";
	public static String PROP_INFO_CLASS = "infoClass";
	public static String PROP_INFO_FILE_NAME = "infoFileName";
	public static String PROP_INFO_LAST_CHANGE_TIME = "infoLastChangeTime";
	public static String PROP_INFO_BREIF = "infoBreif";
	public static String PROP_INFO_CREATE_TIME = "infoCreateTime";
	public static String PROP_INFO_STATUS = "infoStatus";
	public static String PROP_ID = "id";
	public static String PROP_INFO_TITLE = "infoTitle";
	private int hashCode;
	private String id;
	private String infoTag;
	private String infoTitle;
	private String infoBreif;
	private String infoContent;
	private String infoFileName;
	private String infoFileDesc;
	private String infoPicName;
	private String infoPicDesc;
	private Integer infoViewedNum;
	private Integer infoStatus;
	private Date infoCreateTime;
	private Date infoLastChangeTime;
	private Employee infoCreateBy;
	private Infoclass infoClass;
	private Employee infoLastChangeBy;

}
